<?php
/**
 * egpusersUpdate.php
 * 
 * (C) 2009, tetsuya.odaka(EzoGP).
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* 
 * EGP_USERSの更新を行います。
 * 
 *  入力にエラーがあった場合には、エラーメッセージを編集して画面
 *  を戻します。
 *  エラーがなかった場合には、EGP_USERSを更新・削除します。
 * 
 * author	; tetsuya.odaka
 * date		; 2009/6/3
 * 
*/

	// 前準備
	include("../Myznala/myHeader.inc.php");
	require_once("../Myznala/MyConverter.class.php");
	require_once('../Myznala/MyDBConnection.class.php');
	require_once('EgpusersDao.class.php');

	/* 遷移先 */
	$myTemplate='../examples-egpusers/templates/egpusersUpdate.tpl';
	
	
	// パラメータをサニタイズして配列に入れる。
	$cObj = new MyConverter();
	$reqParm = $cObj->getRequestParameters();
	
	// コネクションの取得
	$cnObj = new MyDBConnection();
	$conn=$cnObj->getConnection();
		
	/* 
	 * 入力エラーチェック；エラーがあれば、入力画面にもどします。	
	*/
	$myErrArray = validate(&$reqParm); // 入力チェック関数（内部関数）呼び出し
	if(count($myErrArray)>0){
		$myTplData=array(
					'myLoginUser'		=>$myLoginUser,
					'myAppName'	=>'examples-egpusers',
					'myPageTitle'	=>'EGPUSERS_Update',
		
					// エラーメッセージ
					'myErrArray'	=>$myErrArray,
					// 表示ボタン
					'button_array'	=>setButton()
		);

		// connectionのリリース
		$cnObj->closeConnection($conn);
		// 後処理
		include("../Myznala/myFooter.inc.php");
		return; 
	}
	// connectionのリリース
	$cnObj->closeConnection($conn);
	
	/*
	 * 更新用データを作成します。 
	*/
	$egpObj = new EgpusersDao();
	$conn=$cnObj->getConnection();
	
	/*
	 * データにnull値があった場合にデフォルト値を設定し、
	 * データに入力があった場合にはサニタイズする。
	*/
	
	// ID 
	$egpObj->setId($reqParm['id']);
	
	// E-mail(必須入力)
	$egpObj->setEmail($reqParm['email']);
	
	// Password(必須入力)
	$egpObj->setPassword($reqParm['password']);

	// 名前（漢字）(必須入力)
	$egpObj->setName($reqParm['name']);
	
	// 名前（よみ）
	if($reqParm['nameyomi'] == null || $reqParm['nameyomi'] == ''){
		$reqParm['nameyomi'] = '未入力';
	}
	$egpObj->setNameYomi($reqParm['nameyomi']);

	// 役職
	$egpObj->setRole($reqParm['role']);

	/*
	 * DBを更新
	 */
	$conn->beginTransaction();
	$egpObj->update($conn);
	$conn->commit();
	
	// connectionのリリース
	$cnObj->closeConnection($conn);
			
	/* 正常終了メッセージ */
	$myMsgArray=array();
	$msgObj=new MsgBean();
	$msgObj->setMessage("更新が完了しました。");
	$myMsgArray[0]=$msgObj;
	
	/*
	 * テンプレートの引数をセットします 
	 */
	$myTplData = array(	
			'myLoginUser'=>$myLoginUser,
			'myAppName'=>'examples-egpusers',
			'myPageTitle'=>'EGPSERS_Update',
	
			'id'		=>$egpObj->getId(), 
			'email'		=>$egpObj->getEmail(), 
			'password'	=>$egpObj->getPassword(),
			'name'		=>$egpObj->getName(), 
			'nameyomi'	=>$egpObj->getNameYomi(), 
			'role'		=>$egpObj->getRole(),
			// 終了メッセージ 
			'myMsgArray'=>$myMsgArray,
			// 表示用ボタン 
			'button_array'=>setButton() 
	);
	
	// 後処理
	include("../Myznala/myFooter.inc.php");
	return;

	/*
	 * 入力チェックの内部関数
	*/
	function validate($rParm){
		require_once('../Myznala/ErrorBean.class.php');
		
		$eArr=array();
		$i=0;
		/* パスワード */
		// 入力必須チェック
		if($rParm['password'] == null || $rParm['password'] == ''){
			$eObj = new ErrorBean();
			$eObj->setField("パスワード");
			$eObj->setMessage("入力してください");
			$eArr[$i]=$eObj;
			$i++;
		}
		
		/* 名前 */
		// 入力必須チェック
		if($rParm['name'] == null || $rParm['name'] == ''){
			$eObj=new ErrorBean();
			$eObj->setField("名前");
			$eObj->setMessage("入力してください");
			$eArr[$i]=$eObj;
			$i++;
		}
		return $eArr;
	}
	
	/*
	 * 次画面のボタン表示のための内部関数
	*/
	function setButton(){
		$bArr = array();
		require_once('../Myznala/ButtonBean.class.php');

		// 更新
		$bObj=new ButtonBean();
		$bObj->setId("egp-my-update-button");
		$bObj->setName("update");
		$bObj->setSrc("../images/reply.png");
		$bObj->setAlt("更新の実行");
		$bArr[0]=$bObj;

		// 削除
		$bObj=new ButtonBean();
		$bObj->setId("egp-my-delete-button");
		$bObj->setName("delete");
		$bObj->setSrc("../images/action_delete.png");
		$bObj->setAlt("削除の実行");
		$bArr[1]=$bObj;
		
		// 戻る
		$bObj=new ButtonBean();
		$bObj->setId("egp-my-back-button");
		$bObj->setName("back");
		$bObj->setSrc("../images/process-stop.png");
		$bObj->setAlt("戻る");
		$bArr[2]=$bObj;

		return $bArr;
	}
?>